As distributed computing systems have become increasingly complex, the management of those systems has become a time-consuming and expensive task. It has been reported that the total cost of ownership (TCO) of enterprise Unix/Linux system is from 5 to 10 times the purchase price of the component hardware and software. As a result, autonomic management tools have been developed which utilize knowledge of system experts or historical data to automate management tasks.
Representative works include: T. Ye and S. Kalyararaman, A recursive random search algorithm for large-scale network parameter configuration, which appeared in Proceedings of the International Conference on Measurement and Modeling of Computer Systems (SITMETRICS'03), pages 196-205, 2003; b. Xi, Z. Liu, M. Raghavachari, C. H. Xia, and L. Zhang, A smart hill-climbing algorithm for application server configuration, which appeared in Proceedings of the 13th international conference on World Wide Web (WWW '04), pages 287-296, 2004; and A. Saboori, G. Jiang, and H. Chen, Autotuning configurations in distributed systems for performance improvements using evolutionary strategies, In 28th IEEE International Conference on Distributed Computing Systems (ICDCS '08), 2008.
While current autonomic management solutions focus on the knowledge discovery and modeling to benefit the management in the same system, it may be appreciated by those skilled in the art that it is also important to utilize the knowledge of one system to facilitate the management of other systems. Such a thesis is supported observations made in the system management practice. For example, many special kinds of systems, such as online banking systems, usually run on similar platforms, i.e., the J2EE based infrastructure, to support applications with similar business logics.
As may certainly be appreciated by those skilled in the art, if we learn the behavior of one system and transfer the learned knowledge to other similar systems, then it is not necessary to spend the same amount of effort and time to model the new system. Furthermore, since contemporary systems typically evolve frequently due—for example—to hardware upgrades, software version changes, topology changes, and so on. In such situations, the previous model of system management may not be valid or optimal anymore after the system undergoes changes. Additionally, it is generally not practical to relearn the system from scratch as such relearning requires extra time and data. Therefore, if we can discover useful experiences from the management of previous systems and reuse them in the current system, the system can become more robust and adaptive to the environmental changes.